/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.worsik.vypocty.topeni.tepelneztraty.service;

import cz.worsik.vypocty.topeni.tepelneztraty.dao.ISvetoveStranyDao;
import cz.worsik.vypocty.topeni.tepelneztraty.model.SvetovaStrana;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author 231260
 */
public class SvetoveStranyService implements ISvetoveStranyService {
    private static final Logger log = LoggerFactory
            .getLogger(SvetoveStranyService.class);
	
	public String[] strany = {"s","sv","v","jv","j","jz","z","sz"};
	
	private ISvetoveStranyDao svetoveStranyDao;
	
	@Override
	public void inicializovat()
	{
		ResourceBundle rb = ResourceBundle.getBundle("cz.worsik.vypocty.topeni.tepelneztraty.resources.TepelneZtratyDefaultValues");
		
		if (svetoveStranyDao.isInitialized())
		{
			// strany jsou jiz v databazi
			log.debug("Svetove strany jiz jsou ulozeny v databazi.");
			return;
		}

		for (String strana : strany) {

			// naplnime objekt
			SvetovaStrana objekt = new SvetovaStrana();
			objekt.setNazev(
				rb.getString("strana.nazev." + strana)
			);
			log.debug("Nastavuji Nazev: "+objekt.getNazev());
			objekt.setPopis(
				rb.getString("strana.popis." + strana)
			);
			log.debug("Nastavuji Popis: "+objekt.getPopis());
			String prirazka = rb.getString("strana.p2." + strana);
			log.debug("Textova prirazka je: "+prirazka);
			objekt.setP2(Double.parseDouble(prirazka));
			log.debug("Nastavuji Prirazku P2: "+objekt.getP2());

			// ulozeni hodnot svetovych stran
			svetoveStranyDao.vlozit(objekt);

			log.debug("Uložena strana "+strana+" s popisem "+objekt.getPopis()+" a hodnotou p2 = "+objekt.getP2());
		}
	}

	public void setSvetoveStranyDao(ISvetoveStranyDao svetoveStranyDao) {
		this.svetoveStranyDao = svetoveStranyDao;
	}
	
	@Override
	public List<SvetovaStrana> getAll()
	{
		List<SvetovaStrana> list = svetoveStranyDao.findAll();
		return list;
	}
}
